package cn.org.alan.exam.service;

import cn.org.alan.exam.model.entity.Job;
import cn.org.alan.exam.model.form.job.AssignmentForm;
import cn.org.alan.exam.model.form.job.AssignmentSubmissionDetailForm;
import cn.org.alan.exam.model.form.job.AssignmentSubmissionForm;
import cn.org.alan.exam.model.form.job.AssignmentSubmitForm;
import cn.org.alan.exam.model.vo.job.UserJobDetailsVo;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.models.auth.In;

/**
 * 说明：
 *
 * @Author Alan
 * @Version 1.0
 * @Date 2025/4/2 6:36 PM
 */
public interface IJobService {
    /**
     * 教师创建创建作业
     * @param job 作业对象
     * @return
     */
    Job add(Job job);

    /**
     * 教师删除作业
     * @param jobId
     * @return
     */
    Integer delete(Integer jobId);

    /**
     * 教师修改作业
     * @param job
     * @return
     */
    Job update(Job job);

    /**
     * 分页查询作业
     * @param pageNum
     * @param pageSize
     * @param title
     * @return
     */
    Page getTeacherJobPage(Integer pageNum, Integer pageSize, String title,Integer gradeId);

    /**
     * 获取作业的回答用户
     * @return
     */
    Page getJobDetails(Integer pageNum, Integer pageSize,Integer jobId);

    /**
     * 获取用户回答详细内容
     * @return
     */
    UserJobDetailsVo getUserJobDetails(Integer jobId,Integer userId);

    /**
     * 教师打分
     * @param jobId
     * @param userId
     * @param score
     */
    void mark(Integer jobId,Integer userId,Double score);

}
